#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int MAXN=1e6+10,MOD=1e9+7;
char a[MAXN];
LL num[MAXN],nxt[MAXN],ans,len;
int main()
{
	int T;
	scanf("%d",&T);
	while(T--)
	{
		ans=num[1]=1;
		scanf("%s",a+1);
		len=strlen(a+1);
		int k1=0,k2=0;
		for(int i=2;i<=len;++i)
		{
			while(k1&&a[k1+1]!=a[i])k1=nxt[k1];
			if(a[k1+1]==a[i])++k1;
			nxt[i]=k1;
			num[i]=num[k1]+1;
			while(k2&&a[k2+1]!=a[i])k2=nxt[k2];
			if(a[k2+1]==a[i])++k2;
			while(k2>i>>1)k2=nxt[k2];
			ans=(ans*(num[k2]+1))%MOD;
		}
		printf("%lld\n",ans);
	}
	return 0;
}
